<?php

class Autoevaluacion_ListasfactoresController extends Zend_Controller_Action {
	private $nav;
	
     public function init() {
		$this->nav = new App_Util_Navegacion();
		$this->nav->agregar_navegacion ( "Listado de plantillas de factores", "/autoevaluacion/listasfactores", "Listado de plantillas de factores" );
		$this->view->nav = $this->nav;
	}
	
    public function indexAction() {
        $listasService = new Autoevaluacion_Model_Listas();
        $this->view->datos = $listasService->getListasFactores();
    }
    
    
    public function crearAction() {
    	$this->nav->modificar_navegacion("Listas de factores", "/listas/factores/index");
    	$this->nav->agregar_navegacion("Crear lista", "");

    	$listasService = new Autoevaluacion_Model_Listas();
    	
    	$form = new Autoevaluacion_Form_DetalleLista();
    	$form->getElement("tipolista")->setValue("F"); //tipolista = Factores
    	$form->getElement("codsubtipolista")->addMultiOptions($listasService->getSubTipoListasFactoresForSelect());
    	$form->setAction($this->view->baseUrl("/autoevaluacion/listasfactores/crear"));
    	
    	if($this->getRequest()->isPost() && $form->isValid( $this->getRequest()->getPost() )) {
			try {
				$listasService->guardarLista($form->getValues());
				$this->view->priorityMessenger("Los datos se han guardado correctamente.", "success");
				$this->view->priorityMessenger("RECUERDE: Para las Listas de Factores, sólo puede existir una activa. La última lista activa que usted cree, desactiva las anteriores. Sin embargo puede modificarlas manualmente.", "warning");
				$this->_helper->redirector("index");
			
			} catch(Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
    	}
    	$this->view->form = $form;
        $this->render("detalle");
    }
        
    	
  public function modificarAction() {
        $listasService = new Autoevaluacion_Model_Listas();
    	$form = new Autoevaluacion_Form_DetalleLista();
    	$form->setAction($this->view->baseUrl("/autoevaluacion/listasfactores/modificar"));
    	$form->getElement("codsubtipolista")->addMultiOptions($listasService->getSubTipoListasFactoresForSelect());
            	
    	$codlista = $this->_getParam("codlista");
		if(empty($codlista)) {
			$this->_helper->redirector("index");
		}

        if($this->getRequest()->isGet()) {
			$infoLista = $listasService->getLista($codlista);
			$form->populate($infoLista);
		}
		if($this->getRequest()->isPost() && $form->isValid( $this->getRequest()->getPost() )) {
			try {
				$listasService->guardarLista($form->getValues());
				$this->view->priorityMessenger("Los datos se han guardado correctamente.", "success");
			
			} catch(Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
		}
				
		$this->nav->modificar_navegacion("Listas de factores", "/autoevaluacion/listasfactores/index");
    	$this->nav->agregar_navegacion("Modificar lista: {$form->getElement("nombre")->getValue()}", "");
    	
    	$this->view->form = $form;
		$this->render("detalle");
    }
    
    public function ingresarseccionesAction() {
    	$sesionListas = new Zend_Session_Namespace("LISTAS");
    	$codlista = $this->_getParam("codlista");
    	
    	$listasService = new Autoevaluacion_Model_Listas();
    	$sesionListas->infoLista = $listasService->getLista($codlista);
    	$sesionListas->infoSeccion = null;
    	$this->_helper->redirector("index", "secciones");
    }

}